package com.cyt.work.question.service;

import com.cyt.base.model.dto.ReturnResult;
import com.cyt.sys.model.po.SysUser;
import com.cyt.sys.service.BaseService;
import com.cyt.work.question.model.dto.QuestionUserDto;
import com.cyt.work.question.model.po.QuestionUser;
import com.cyt.work.question.model.vo.QuestionUserImportVo;

import java.util.List;

/**
 * 问卷用户表
 *
 * @author congcong tao
 * @create 2019/7/8 10:44
 */
public interface IQuestionUserService extends BaseService<QuestionUser> {

    /**
     * 根据问卷id查询
     * @param questionId
     * @param status 是否提交，0=未提交1=已提交
     * @author congcong tao
     * @date 2019/9/2 16:33
     */
    List<QuestionUserDto> selectByQuestionId(String questionId, String status);

    /**
     * 查询二维码用户信息
     * @param questionId
     * @author congcong tao
     * @date 2019/9/9 10:34
     */
    List<QuestionUserDto> selectQrcodeByQuestionId(String questionId);

    /**
     * 保存用户
     * @param questionId
     * @param userJson
     * @author congcong tao
     * @date 2019/9/3 14:47
     */
    ReturnResult saveQuestionUser(String questionId, String userJson);

    /**
     * 保存所有在微信人员管理中的用户进入问卷
     * @param questionId
     * @author congcong tao
     * @date 2019/9/9 9:19
     */
    ReturnResult saveQuestionAllWxEducationUser(String applyId, String questionId, SysUser sysUser);

    /**
     * 根据类型保存微信人员管理中的用户进入问卷
     * @param questionId
     * @param objectType 2=教师3=学生
     * @author congcong tao
     * @date 2019/9/9 9:19
     */
    ReturnResult saveQuestionWxEducationUserByStatus(String applyId, String questionId, String objectType, SysUser sysUser);

    /**
     * 更改用户状态
     * @param questionId
     * @param userId
     * @author congcong tao
     * @date 2019/9/4 8:12
     */
    void updateStatus(String questionId, String userId);

    /**
     * 批量新增
     * @param list
     * @author congcong tao
     * @date 2019/9/4 10:14
     */
    void insertList(List<QuestionUser> list);

    /**
     * 查询导出数据
     * @param questionId
     * @author congcong tao
     * @date 2019/9/9 9:37
     */
    List<QuestionUserImportVo> selectExportUserByQuestionId(String questionId);

    /**
     * 更新问卷人员
     * @param questionId 问卷主键
     * @param userJson
     * @author congcong tao
     * @date 2019/9/9 9:51
     */
    ReturnResult updateQuestionUser(String questionId, String userJson);

    /**
     * 针对对象问卷
     * @param userId,wxEducationUser的id，只会对对象问卷有效
     * @author congcong tao
     * @date 2019/9/10 16:19
     */
    void updateStatusByUnbindUser(String userId);
}
